﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WebServiceDSDG6.Persistencia;
using RRTWSEntityDSD.Dominio;
using System.Data.SqlClient;

namespace RRTWSEntityDSD.Dao
{
    public class EstadioDAO : BaseDAO<Estadio,int>
    {
        public RRTWSEntityDSD.Dominio.Estadio insert(string nombre, int idubigeo)
        {
            Estadio e = new Estadio() { nombre=nombre, idubigeo=idubigeo};
            return Crear(e);
        }

        public RRTWSEntityDSD.Dominio.Estadio update(int idequipo, string nombre, int idubigeo)
        {
            Estadio e = new Estadio() { idestadio=idubigeo, nombre = nombre, idubigeo = idubigeo };
            return Modificar(e);
        }

        public List<RRTWSEntityDSD.Dominio.Estadio> getListarEstadioPorUbigeo(string codigUbigeo)
        {
            
            try
            {
                string query = " SELECT * FROM ESTADIO WHERE UBIG_IDUBIGEO  = (SELECT UBIG_IDUBIGEO FROM T_UBIGEO WHERE UBIG_CODIGO = '"+codigUbigeo+"')";

                SqlCommand cmd = new SqlCommand(query, cnx);
                cnx.Open();
                using (SqlDataReader dr = cmd.ExecuteReader())
                {

                    List<Estadio> listaEquipos = new List<Estadio>();
                    while (dr.Read())
                    {

                        if (!Convert.IsDBNull(dr["EST_ID_ESTADIO"]))
                        {
                            Estadio a = new Estadio()
                            {
                                idestadio = int.Parse(dr["EST_ID_ESTADIO"].ToString()),
                                nombre = dr["EST_DESCRIPCION"].ToString(),
                                idubigeo = int.Parse(dr["UBIG_IDUBIGEO"].ToString())
                            };
                            listaEquipos.Add(a);
                        }
                    }

                    return listaEquipos;
                }
            }
            catch (Exception e)
            {
                throw new InvalidOperationException("Error de conexiones  ");
            }

            finally
            {
                cnx.Close();
            }
            return null;

        }

        public RRTWSEntityDSD.Dominio.Estadio getEstadio(int id)
        {
            return Obtener(id);
        }
    }
}